package com.zhang.anno;

import com.zhang.validartion.StateValidation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import java.lang.annotation.*;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * @program: big_event
 * @description: TODO
 * @author: Mr.Zhang
 * @create: 2024-04-06 14:18
 **/

@Documented //元注解
@Retention(RUNTIME) //元注解
@Target({FIELD}) //元注解
@Constraint(
        validatedBy = {StateValidation.class}//指定提供校验器规则的类
)
public @interface State {

    //提供校验失败后的提示消息
    String message() default "state参数的值只能是已发布或者草稿";

    //指定分组
    Class<?>[] groups() default {};

    //负载 获取到state注解的附加信息
    Class<? extends Payload>[] payload() default {};

}
